解决Java8 分组groupingBy 后排序不变的问题 您所在的位置:网站首页 stream groupingby 分组后排序 解决Java8 分组groupingBy 后排序不变的问题

解决Java8 分组groupingBy 后排序不变的问题

2024-04-21 08:37| 来源: 网络整理| 查看: 265

在工作中遇到了java8 stream groupBy 分组排序失效的问题

在此记录一下解决方案

预期效果: 按照年纪倒序并分组 实际结果:返回的数据是杂乱无章,并没有按照年纪倒序 示例代码如下: import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; /** * @author miao */ public class GroupBySort { public static void main(String[] args) { //构造数据 List students = Stream.of( new Student("a", 15), new Student("b", 13), new Student("c", 11), new Student("d", 18), new Student("e", 20) ).collect(Collectors.toList()); //按照年纪倒序并分组 Map studentMap = students.stream() .sorted(Comparator.comparing(Student::getAge).reversed()) .collect(Collectors.groupingBy(Student::getAge)); System.out.println(studentMap); } } class Student { private String name; private Integer age; public Student(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } }

在这里插入图片描述

排查原因 查看 java.util.stream.Collectors类的groupingBy方法,源码如下 //一个入参 public static Collector groupingBy(Function


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有